var app = getApp()
var ConstantData = require('../../../common/constant_data.js')
var commonUtil = require("../../../common/common.js")


// pages/sub_scenes/sub_scenes.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    topbarHeight: 0, // 顶部条的高度，单位PX，动态获取
    showArea: false, // 显示区域选择弹窗
    showSort: false, // 显示排序选择弹窗
    showFilter: false, // 显示筛选选择弹窗
    keywords: null, // 搜索关键词
    areaLabel: '区域',
    areaOpenList:[],
    areaColumns: [], //省市区选择器数据
    city1: null, //当前选中省
    city2: null, //当前选中市
    city3: null, //当前选中县
    sortList: [
      {
        name: '排序',
        optName: '默认',
        type: 'default',
      },
      {
        name: '距离最近',
        optName: '距离最近',
        type: 'asc_distance',
      },
      {
        name: '距离最远',
        optName: '距离最远',
        type: 'desc_distance',
      }
    ],
    sortIndex: 0, //当前选中的排序方式数组下标
    sceneList: [  //机构属性列表数据，需从服务器获取
      {
        id: 1,
        name: '景区'
      },
      {
        id: 2,
        name: '医院'
      },
      {
        id: 3,
        name: '机场'
      }
    ],
    currSceneIndex: -1, //当前选中的机构数组下标，注意：这个才是选中后点击确认后的值
    tempSceneIndex: -1, //临时选中的机构数组下标，注意：这个值只是为了UI展示，没有点击确认时，会重置
    //开发的机构列表
    openOrgList:[],
    list: [ // 可预约场所列表数据，需从服务器获取
      {
        id: 1,
        name: '连云港游客分散中心',
        info: '连岛景区游客服务中心｜大沙湾服务中心',
        icon: 'https://img0.baidu.com/it/u=3557232893,435669428&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '景区'
      },
      {
        id: 2,
        name: '苏州大学第一人民医院',
        info: '苏州大学第一人民医院｜门诊大厅服务中心',
        icon: 'https://img2.baidu.com/it/u=1275259697,1074376324&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '医院'
      },
      {
        id: 3,
        name: '北京中日友好医院',
        info: '北京中日友好医院｜大沙湾服务中心',
        icon: 'https://img0.baidu.com/it/u=3557232893,435669428&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '景区'
      },
      {
        id: 4,
        name: '上海复旦大学第一医院',
        info: '上海复旦大学第一医院｜门诊大厅服务中心',
        icon: 'https://img2.baidu.com/it/u=1275259697,1074376324&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '医院'
      },
      {
        id: 5,
        name: '连云港游客分散中心',
        info: '连岛景区游客服务中心｜大沙湾服务中心',
        icon: 'https://img0.baidu.com/it/u=3557232893,435669428&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '景区'
      },
      {
        id: 6,
        name: '苏州大学第一人民医院',
        info: '苏州大学第一人民医院｜门诊大厅服务中心',
        icon: 'https://img2.baidu.com/it/u=1275259697,1074376324&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '医院'
      },
      {
        id: 7,
        name: '连云港游客分散中心',
        info: '连岛景区游客服务中心｜大沙湾服务中心',
        icon: 'https://img0.baidu.com/it/u=3557232893,435669428&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '景区'
      },
      {
        id: 8,
        name: '苏州大学第一人民医院',
        info: '苏州大学第一人民医院｜门诊大厅服务中心',
        icon: 'https://img2.baidu.com/it/u=1275259697,1074376324&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '医院'
      },
      {
        id: 9,
        name: '连云港游客分散中心',
        info: '连岛景区游客服务中心｜大沙湾服务中心',
        icon: 'https://img0.baidu.com/it/u=3557232893,435669428&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '景区'
      },
      {
        id: 10,
        name: '苏州大学第一人民医院',
        info: '苏州大学第一人民医院｜门诊大厅服务中心',
        icon: 'https://img2.baidu.com/it/u=1275259697,1074376324&fm=253&fmt=auto&app=138&f=JPEG?w=220&h=165',
        type: '医院'
      }
    ],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 计算topbar的高度
    this.countTopbarHeight()

    // 初始化省市区数据
    this.initAreaData()

    this.getOpenOrgList()

  },

  clickItem(event) {
    const vm = this
    let index = event.currentTarget.dataset.index
    // 需要在这里获取数据，跳转到预约页面去...
    wx.navigateTo({
      url: '../sub_lease/sub_lease?type=sub&hospitalId='+vm.data.openOrgList[index].orgId,
    })
  },

  confirmSceneIndex() {
    this.closeFilterPopup()

    if (this.data.currSceneIndex == this.data.tempSceneIndex) {
      console.log('当前选择的机构属性没有变化，则无需重新获取数据')
      return
    }

    this.setData({
      currSceneIndex: this.data.tempSceneIndex,
    })

    // 需要在这里重新通过筛选机构属性获取场所列表数据。。。。
  },

  resetSceneIndex() {
    this.closeFilterPopup()
    this.setData({
      currSceneIndex: -1,
      tempSceneIndex: -1
    })

    // 需要在这里重新通过筛选机构属性获取场所列表数据。。。。
  },

  selectSceneItem(event) {
    this.closeSortPopup()

    let index = event.currentTarget.dataset.index
    if (this.data.tempSceneIndex == index) {
      return
    }
    this.setData({
      tempSceneIndex: index
    })
    this.data.orgType = this.data.sceneList[index]
    this.getOpenOrgList()
  },

  selectSortItem(event) {
    this.closeSortPopup()

    let index = event.currentTarget.dataset.index
    if (this.data.sortIndex == index) {
      return
    }
    this.setData({
      sortIndex: index
    })
// mark: 根据距离进行筛选
    // 需要在这里重新通过排序类型获取场所列表数据。。。。
    this.data.sortType = this.data.sortList[index].type
    let that = this
    let location = wx.getStorageSync('location')
    console.log('当前选中的排序了类型', this.data.sortList[index], location)

    if(location) {
       that.data.lat = location.latitude
       that.data.lng = location.longitude
       that.getOpenOrgList()
       commonUtil.locationAddr()
    }else {
      commonUtil.locationAddr(function(res){
        that.data.lat = res.latitude
        that.data.lng = res.longitude
        that.getOpenOrgList()
      })
    }
    

  },

  closeFilterPopup() {
    this.setData({
      showFilter: false
    })
  },

  switchFilterPopup() {
    this.setData({
      showArea: false,
      showSort: false,
      showFilter: !this.data.showFilter,
    })
    if (this.data.showFilter) {
      this.setData({
        tempSceneIndex: this.data.currSceneIndex,
      })
    }
  },

  closeSortPopup() {
    this.setData({
      showSort: false
    })
  },

  switchSortPopup(e) {
    console.log('sub_scenes-->', e)
    this.setData({
      showArea: false,
      showSort: !this.data.showSort,
      showFilter: false,
    })
  },

  closeAreaPopup() {
    this.setData({
      showArea: false
    })
  },

  openAreaPopup() {
    this.setData({
      showArea: true,
      showSort: false,
      showFilter: false,
    })
  },

  search() {
    console.log('搜索关键词', this.data.keywords)
    // 需要在这里重新通过关键词获取场所列表数据。。。。
    this.getOpenOrgList()
  },

  keywordsChange(event) {
    this.setData({
      keywords: event.detail
    })
  },

  resetArea() {
    this.closeAreaPopup()
    this.setData({
      city1: null,
      city2: null,
      city3: null,
      areaLabel: '区域',
      province: null,
      city: null,
      village: null
    })
    // 重置区域，也就是不筛选省市县  
    // 计算topbar的高度
    this.countTopbarHeight()
    // 初始化省市区数据
    this.initAreaData()    
    this.getOpenOrgList()
  },

  confirmArea(event) {
    this.closeAreaPopup()
    if (event.detail.value[0]) {
      console.log('当前选中省：', event.detail.value[0].area)
      this.data.province = event.detail.value[0].area
    }
    if (event.detail.value[1]) {
      console.log('当前选中市：', event.detail.value[1].area)
      this.data.city = event.detail.value[1].area
    }
    if (event.detail.value[2]) {
      console.log('当前选中县：', event.detail.value[2].area)
      this.data.village = event.detail.value[2].area
    }
    this.setData({
      city1: event.detail.value[0],
      city2: event.detail.value[1],
      city3: event.detail.value[2],
      areaLabel: `${event.detail.value[0] ? event.detail.value[0].area : ''}${event.detail.value[1] ? event.detail.value[1].area : ''}${event.detail.value[2] ? event.detail.value[2].area : ''}`
    })
// mark: 根据省市县获取机构列表
    // 需要在这里重新通过省市县获取场所列表数据。。。。
    this.getOpenOrgList()
  },

  changeArea(event) {
    const {
      picker,
      value,
      index
    } = event.detail

    if (index == 0) {
      //省列改变

      //判断省下是否有市
      if (value[0].children && value[0].children.length > 0) {
        //市列更新
        picker.setColumnValues(1, value[0].children)
        //判断市下是否有县
        if (value[0].children[0].children && value[0].children[0].children.length > 0) {
          //县列更新
          picker.setColumnValues(2, value[0].children[0].children)
        } else {
          //县列更新
          picker.setColumnValues(2, [])
        }
      } else {
        //省份下没有市
        //市列更新
        picker.setColumnValues(1, [])
        //县列更新
        picker.setColumnValues(2, [])
      }
    } else if (index == 1) {
      //市列改变
      //判断市下是否有县
      if (value[1].children && value[1].children.length > 0) {
        //县列更新
        picker.setColumnValues(2, value[1].children)
      } else {
        //县列更新
        picker.setColumnValues(2, [])
      }
    }
  },

  initAreaData() {
// mark: 获取筛选的开放区域
    let that = this
    app.executeRequest(function (header) {

      wx.request({
        url: ConstantData.CONSTATNT_DATA.BASE_URL + '/leaseSubEqu/openAreaList',
        // url: 'http://localhost:8088/visfull-vbzd/leaseSubEqu/openAreaList',
        method:'POST',
        header: header,
        data: {         
        },
        success: function (res) {
          console.log('open area list==>', res)          
          let areaOpenList = res.data.data    
          that.setData({
            areaOpenList: areaOpenList,
            areaColumns: [{
              values: areaOpenList && areaOpenList.length > 0 ? areaOpenList : [],
            },
            {
              values: areaOpenList[0].children && areaOpenList[0].children.length > 0 ? areaOpenList[0].children : [],
            },
            {
              values: areaOpenList[0].children[0].children && areaOpenList[0].children[0].children.length > 0 ? areaOpenList[0].children[0].children : [],
            },
          ],
          sceneList: res.data.orgTypeList
          })
        },
        fail:function(err){
        }
      });

    });

    this.setData({
      
    })
  },

  countTopbarHeight() {
    const vm = this
    let query = wx.createSelectorQuery()
    query.select('.topbar').boundingClientRect(rect => {
      let height = rect ? rect.height : '60rpx'
      vm.setData({
        topbarHeight: height
      })
    }).exec()
  },

  /**
   * 获取开放的机构列表 // mark: 获取机构列表
   */
  getOpenOrgList() {
    var that = this
    let province = that.data.province
    let city = that.data.city
    let village = that.data.village
    let orgType = that.data.orgType
    let orderBy = that.data.sortType
    let lat = that.data.lat
    let lng = that.data.lng
    let key = that.data.keywords
    app.executeRequest(function (header) {
        wx.request({
          url: ConstantData.CONSTATNT_DATA.BASE_URL + '/leaseSubEqu/orgList',
          // url: 'http://localhost:8088/visfull-vbzd/leaseSubEqu/orgList',
          method:'POST',
          header: header,
          data: {
            province: province ? province : '',
            city: city ? city : '',
            village: village ? village : '',
            orgType: orgType ? orgType : '',
            orderBy: orderBy ? orderBy : '',
            lat: lat ? lat : '',
            lng: lng ? lng : '',
            key: key ? key : ''
          },
          success: (res) => {
            console.log('org list--->', res)
            that.setData({
              openOrgList: res.data.data
            })
          }
        })
      
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})